home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Development Platforms / Apple II / Essentials / Miscellaneous Disk Images / Apple II Getting down to Basic / SAVER.bas < prev    next >
Encoding:
BASIC Source File  |  1988-02-17  |  17.5 KB  |  151 lines

  1. 0  ONERR  GOTO 1481
  2. 1  LET IN$ = "X":TT = 0:BT = 24:M = 0: GOSUB 581: GOSUB 571: GOSUB 701: HOME :F$ = "SAVER.TEXT": GOSUB 1451: GOSUB 631: GOSUB 521: GOSUB 631:ET = 1
  3. 11 TT(1) = 12:BT(1) = 24:W(1) = 38:B(1) = 10:T(1) = 3:L(1) = 1:IV = 13: GOSUB 1391: VTAB 15:SN = 1: GOSUB 821: GOSUB 891: GOSUB 861: PRINT " 40 PRINT "; CHR$(34);I$(1); CHR$(34): GOSUB 921:TT = 0:BT = 12: GOSUB 691: GOSUB 631: GOSUB 521: GOSUB 631: GOSUB 521: GOSUB 631: GOSUB 521: GOSUB 631: GOSUB 521: GOSUB 631: TEXT : GOSUB 521: GOSUB 631: GOSUB 521: GOSUB 631
  4. 21 ET = 1
  5. 31 TT = 20:BT = 24: GOSUB 691: GOSUB 701: VTAB 21: GOSUB 741:W = 38:B = 9:T = 3:L = 1:X = 1: GOSUB 931: IF E = 1  THEN  GOSUB 711: PRINT "Please SAVE your program as POEM": PRINT "by typing SAVE POEM.  Try again.": GOTO 31
  6. 41 BS = X: GOSUB 1151: ON E = 1 GOTO 31
  7. 51  GOSUB 931: IF E = 1  THEN  GOSUB 711: PRINT "You typed "; MID$ (BU$,BS)".": PRINT "To SAVE a program you must give": PRINT "it a name.  Please try again.": GOTO 31
  8. 61  IF  MID$ (AN$,X,4) < >"POEM"  THEN  GOSUB 711: PRINT "You typed "; MID$ (BU$,BS)".": PRINT "Normally you could choose any": PRINT "name for your program, but this": PRINT "time you should SAVE POEM.": GOTO 31
  9. 71 LD = 2:X = X +3: GOSUB 1231: ON E = 1 GOTO 31
  10. 81 TT = 12:BT = 24: GOSUB 701: PRINT : PRINT : PRINT : PRINT  CHR$(4);"VERIFY PROGRAM.TEXT":TT = 0:BT = 12: GOSUB 691: GOSUB 631: GOSUB 521: GOSUB 631: GOSUB 521: GOSUB 631: GOSUB 521:TT = 0:BT = 24: GOSUB 691: POKE  -16297,0: POKE  -16299,0: POKE  -16300,0: POKE  -16304,0: HPLOT 10,159 TO 10,150 TO 269,150 TO 269,159: GOSUB 631: GOSUB 521:C1 = 3: READ AX,BY: GOSUB 1321
  11. 91  GOSUB 631: GOSUB 521: GOSUB 631: GOSUB 521: READ AX,BY: GOSUB 1331: FOR PF = 1 TO 16:C1 = 0: GOSUB 1331: READ AX,BY:C1 = 3: GOSUB 1331: NEXT PF: GOSUB 521: GOSUB 631: GOSUB 521: GOSUB 631: GOSUB 521: GOSUB 631: GOSUB 521:TT = 0:BT = 24: GOSUB 691: POKE  -16298,0: POKE  -16300,0: POKE  -16303,0: GOSUB 631: GOSUB 521: GOSUB 631: GOSUB 521: GOSUB 631:ET = 1
  12. 101 TT = 20:BT = 24: GOSUB 691: GOSUB 701: VTAB 21: GOSUB 741:W = 38:B = 10:T = 3:L = 1:X = 1: GOSUB 931: IF E = 1  THEN  GOSUB 711: PRINT "You need to catalog the disk by": PRINT "typing CAT.  Please try again.": GOTO 101
  13. 111  GOSUB 1301: ON E = 1 GOTO 101: IF  MID$ (AN$,X,4) = "ALOG"  THEN  GOSUB 711: PRINT "Yes, the CATALOG command would": PRINT "work on an 80-column display, but": PRINT "please type CAT because you're": PRINT "using a 40-column display.": GOTO 101
  14. 121 LD = 0: GOSUB 1231: ON E = 1 GOTO 101
  15. 131  PRINT : PRINT  CHR$(4);"VERIFY PROGRAM.TEXT":TT = 12:BT = 24: GOSUB 691: VTAB 13: PRINT "]CAT": PRINT :BF = 272:BU = 8: GOSUB 1421:TT = 0:BT = 12: GOSUB 691: GOSUB 631: GOSUB 521: GOSUB 631: GOSUB 521: GOSUB 631: GOSUB 521: GOSUB 631:ET = 1
  16. 141 TT = 21:BT = 24: GOSUB 691: GOSUB 701: VTAB 23: GOSUB 741:W = 38:B = 9:T = 3:L = 1:X = 1: GOSUB 931: IF E = 1  THEN  GOSUB 711: PRINT "You must type NEW and": PRINT "press RETURN to clear memory.": PRINT "Please try again.": GOTO 141
  17. 151 BS = X: IF  MID$ (AN$,X,3) < >"NEW"  THEN  GOSUB 711: PRINT "You typed "; MID$ (BU$,BS)".": PRINT "NEW is the command you need to": PRINT "use to clear memory.  Please try": PRINT "again.": GOTO 141
  18. 161 X = X +2: GOSUB 1231: ON E = 1 GOTO 141
  19. 171 TT = 12:BT = 24: GOSUB 701: VTAB 24: PRINT : PRINT : PRINT : PRINT :TT = 0:BT = 12: GOSUB 691: GOSUB 631:ET = 1:TT(1) = 20:BT(1) = 24:W(1) = 38:B(1) = 9:T(1) = 3:L(1) = 1:IV = 21: GOSUB 1361:TT = 11:BT = 24: GOSUB 701: VTAB 24: PRINT "]": PRINT :TT = 0:BT = 12: GOSUB 691: GOSUB 631: GOSUB 521: GOSUB 631: GOSUB 521
  20. 181 TT = 0:BT = 24: GOSUB 691: POKE  -16297,0: POKE  -16299,0: POKE  -16300,0: POKE  -16304,0: GOSUB 631: GOSUB 521: HCOLOR= 0:AX = 85:BY = 35: GOSUB 1321: GOSUB 631: GOSUB 521: GOSUB 631: GOSUB 521: POKE  -16298,0: POKE  -16300,0: POKE  -16303,0: GOSUB 631: GOSUB 521: GOSUB 631: GOSUB 521: GOSUB 631:ET = 1
  21. 191 TT = 20:BT = 24: GOSUB 691: GOSUB 701: VTAB 21: GOSUB 741:W = 38:B = 10:T = 3:L = 1:X = 1: GOSUB 931: IF E = 1  THEN  GOSUB 711: PRINT "Please LOAD your POEM PROGRAM": PRINT "by typing LOAD POEM.  Try again.": GOTO 191
  22. 201 BS = X: GOSUB 1171: ON E = 1 GOTO 191: GOSUB 931: IF E = 1  THEN  GOSUB 711: PRINT "You typed "; MID$ (BU$,BS)".": PRINT "To LOAD a program you must call": PRINT "it by name.  Please try again.": GOTO 191
  23. 211  IF  MID$ (AN$,X,4) < >"POEM"  THEN  GOSUB 711: PRINT "You typed "; MID$ (BU$,BS)".": PRINT "The only way you can LOAD your": PRINT "POEM program is by calling it by": PRINT "the right name.  Try again.": GOTO 191
  24. 221 LD = 3:X = X +3: GOSUB 1231: ON E = 1 GOTO 191
  25. 231 TT = 14:BT = 16: GOSUB 701: PRINT : PRINT  CHR$(4);"VERIFY PROGRAM.TEXT":TT = 0:BT = 12: GOSUB 701: GOSUB 631: GOSUB 521:TT = 0:BT = 24: GOSUB 691: POKE  -16297,0: POKE  -16299,0: POKE  -16300,0: POKE  -16304,0: GOSUB 631: GOSUB 521: GOSUB 631: GOSUB 521:C1 = 3:AX = 238:BY = 60: GOSUB 1331: FOR PF = 1 TO 16:C1 = 0: GOSUB 1331: READ AX,BY:C1 = 3: GOSUB 1331: NEXT PF
  26. 241  GOSUB 521: GOSUB 631: GOSUB 521:TT = 0:BT = 24: GOSUB 691:TT = 0:BT = 12: GOSUB 701: POKE  -16298,0: POKE  -16300,0: POKE  -16303,0: GOSUB 631:LD = 0:ET = 1:TT(1) = 20:BT(1) = 24:W(1) = 38:B(1) = 9:T(1) = 3:L(1) = 1:IV = 21: GOSUB 1391
  27. 251 TT = 12:BT = 24: GOSUB 701: VTAB 22:SN = 1: PRINT : GOSUB 821: GOSUB 891: GOSUB 861: PRINT " 40 PRINT "; CHR$(34);I$(1); CHR$(34): GOSUB 921: PRINT : PRINT : PRINT : PRINT :TT = 0:BT = 12: GOSUB 691: GOSUB 631: GOSUB 521: GOSUB 631:ET = 1
  28. 261 TT = 20:BT = 24: GOSUB 691: GOSUB 701: VTAB 21: GOSUB 741:W = 38:B = 10:T = 3:L = 1:X = 1: GOSUB 931: IF E = 1  THEN  GOSUB 711: PRINT "You can change LINE 30 by typing": PRINT "30 and following it with a new": PRINT "PRINT statement.": GOTO 261
  29. 271 SL = 2:BS = X: GOSUB 1011: IF LN$ < >"30"  THEN  GOSUB 711: PRINT "You are trying to replace": PRINT "line 30 by typing 30 and a": PRINT "PRINT statement.  Try again.": GOTO 261
  30. 281 X = X +2: GOSUB 931: IF E = 1  THEN  GOSUB 711: PRINT "You typed "; MID$ (BU$,BS)".": PRINT "You should follow the line": PRINT "number with a PRINT statement.": GOTO 261
  31. 291  GOSUB 1021: ON E = 1 GOTO 261: GOSUB 931: IF E = 1  THEN  GOSUB 711: PRINT "You typed "; MID$ (BU$,BS)".": PRINT "You should type a new literal": PRINT "quote to replace the old one.": PRINT "Please try again.": GOTO 261
  32. 301 PN = 2: GOSUB 1051: ON E = 1 GOTO 261: GOSUB 1081: ON E = 1 GOTO 261: GOSUB 1121: ON E = 1 GOTO 261
  33. 311 TT = 12:BT = 24: GOSUB 701: VTAB 24: PRINT : PRINT :TT = 0:BT = 12: GOSUB 631: GOSUB 521: GOSUB 631:ET = 1
  34. 321 TT = 20:BT = 24: GOSUB 691: GOSUB 701: VTAB 21: GOSUB 741:W = 38:B = 10:T = 3:L = 1:X = 1: GOSUB 931: IF E = 1  THEN  GOSUB 711: PRINT "Please SAVE your program under": PRINT "some name other than POEM.": PRINT "Try again.": GOTO 321
  35. 331 BS = X: GOSUB 1151: ON E = 1 GOTO 321
  36. 341 PC = 1: GOSUB 931: IF E = 1  THEN  GOSUB 711: PRINT "You typed "; MID$ (BU$,BS)".": PRINT "To SAVE a program you must give": PRINT "it a name.  Please try again.": GOTO 321
  37. 351 PC = 0:SL =  LEN(AN$): FOR Y =  LEN(AN$) TO X  STEP  -1: IF  MID$ (AN$,Y,1) = " "  THEN SL = SL -1
  38. 361  IF  MID$ (AN$,Y,1) < >" "  THEN Y = X
  39. 371  NEXT Y:PN$(1) =  MID$ (AN$,X,SL -X +1): IF  LEN(PN$(1)) >15  THEN  GOSUB 711: PRINT "You typed:": PRINT  MID$ (BU$,BS): PRINT "Program names can be no longer": PRINT "than 15 characters.  Try again.": GOTO 321
  40. 381  IF  ASC(PN$(1)) <65  OR  ASC(PN$(1)) >90  THEN  GOSUB 711: PRINT "You typed "; MID$ (BU$,BS)".": PRINT "You can't begin a program name": PRINT "with a number or symbol.": PRINT "Please try again.": GOTO 321
  41. 391  FOR Y = 1 TO SL -X +1: IF  MID$ (PN$(1),Y,1) = " "  THEN E = 1: GOSUB 711: PRINT "You typed "; MID$ (BU$,BS)".": PRINT "You can't use spaces in program": PRINT "names.  Please try again.":Y = SL
  42. 401  NEXT Y: ON E = 1 GOTO 321
  43. 411  FOR Y = 1 TO SL -X +1: IF  ASC( MID$ (PN$(1),Y)) <46  OR  ASC( MID$ (PN$(1),Y)) >57  AND  ASC( MID$ (PN$(1),Y)) <65  OR  ASC( MID$ (PN$(1),Y)) >90  THEN E = 1
  44. 421  IF E = 1  THEN  GOSUB 711: PRINT "You typed " MID$ (BU$,BS)".": PRINT "If you use characters (other": PRINT "than '.') in program names": PRINT "you will get a SYNTAX ERROR.": PRINT "Please try again.":Y = SL
  45. 431  NEXT Y: ON E = 1 GOTO 321
  46. 441  FOR Y = 1 TO SL -1 +X: IF  MID$ (PN$(1),Y,1) = "/"  THEN E = 1: GOSUB 711: PRINT "You typed " MID$ (BU$,BS)".": PRINT "You shouldn't use slashes in": PRINT "program names since they have a": PRINT "special meaning. Please try again.":Y = SL
  47. 451  NEXT Y: ON E = 1 GOTO 321
  48. 461  IF PN$(1) = "POEM"  THEN  GOSUB 711: PRINT "You typed " MID$ (BU$,BS)".": PRINT "If you SAVE your program as POEM": PRINT "you will erase the old POEM": PRINT "program.  Please save your": PRINT "program under another name.": GOTO 321
  49. 471  PRINT : PRINT  CHR$(4);"VERIFY PROGRAM.TEXT":TT = 12:BT = 24: GOSUB 701: PRINT : PRINT : PRINT :TT = 0:BT = 12: GOSUB 691: GOSUB 631:ET = 1
  50. 481 TT = 20:BT = 24: GOSUB 691: GOSUB 701: VTAB 21: GOSUB 741:W = 38:B = 9:T = 3:L = 1:X = 1: GOSUB 931: IF E = 1  THEN  GOSUB 711: PRINT "You need to catalog the disk by": PRINT "typing CAT.  Please try again.": GOTO 481
  51. 491  GOSUB 1301: ON E = 1 GOTO 481: IF  MID$ (AN$,X,4) = "ALOG"  THEN  GOSUB 711: PRINT "Yes, the CATALOG command would": PRINT "work on an 80 column display,": PRINT "but please use CAT because you're": PRINT "using a 40 column display.": GOTO 481
  52. 501 LD = 0: GOSUB 1231: ON E = 1 GOTO 481
  53. 511  PRINT : PRINT  CHR$(4);"VERIFY PROGRAM.TEXT":TT = 12:BT = 24: GOSUB 691: VTAB 14: PRINT "]CAT": PRINT :CS = 1:BF = 271:BU = 9: GOSUB 1421:TT = 0:BT = 12: GOSUB 691: GOSUB 631: GOSUB 521: GOSUB 631
  54. 515  GOSUB 521: GOSUB 631: GOSUB 521: GOSUB 631: POKE 932,1: GOSUB 521: GOSUB 1461:TT = 0:BT = 24: GOSUB 691: PRINT : PRINT  CHR$(4);"RUN RUNNUMERIC": END 
  55. 521  POKE  -16368,0
  56. 531 P =  PEEK( -16384):TE = TE +1: ON P = 155 GOTO 1471: ON P < >13 GOTO 541: IF TE <225  THEN 531
  57. 541  IF P = 141  THEN TE = 0: CALL  -998: RETURN 
  58. 551 M$ = "Press RETURN": GOSUB 561: FOR Z = 1 TO 700: NEXT Z:M$ = "_____________": GOSUB 561: FOR Z = 1 TO 700: NEXT Z: GOTO 531
  59. 561  VTAB B: HTAB M +(((W -L) - LEN(M$))/2): PRINT M$;: RETURN 
  60. 571  PRINT  CHR$(4);"OPEN CALLNAME": PRINT  CHR$(4);"READ CALLNAME": INPUT NA$: PRINT  CHR$(4);"CLOSE CALLNAME": RETURN 
  61. 581  PRINT  CHR$(4);"OPEN CAT.NAME": PRINT  CHR$(4);"READ CAT.NAME"
  62. 591  GET I$: IF I$ < >"@"  THEN I$(1) = I$(1) +I$: GOTO 591
  63. 601  PRINT  CHR$(4);"CLOSE CAT.NAME": RETURN 
  64. 611  POKE 34,T -2: POKE 35,B: POKE 32,L: POKE 33,W +1: HOME : FOR BD = 2 TO W -1: VTAB T -1: HTAB BD: PRINT "_";: VTAB B: HTAB BD: PRINT "_";: NEXT BD: FOR BD = T TO B: VTAB BD: HTAB 1: PRINT "|";: HTAB W: PRINT "|";: NEXT BD
  65. 621  POKE 34,T: POKE 35,B -1: POKE 32,L +2: POKE 33,W -4: HOME : RETURN 
  66. 631  PRINT  CHR$(4);"READ ";F$:S$ = "":A$ = "":NL = 1: INPUT S$: IF S$ = "%"  THEN  GOSUB 691: INPUT T,B,L,W: GOSUB 611: GOTO 661
  67. 641  IF S$ = "&"  THEN  GOSUB 621
  68. 651  FOR H = T +1 TO B -1: VTAB H: HTAB 1: CALL  -868: NEXT H
  69. 661  CALL 813:IN$ =  MID$ (IN$,1): IF IN$ = "^"  THEN 681
  70. 671  VTAB T +NL: HTAB 1:NL = NL +1: PRINT IN$;: GOTO 661
  71. 681  RETURN 
  72. 691  POKE 32,0: POKE 33,40: POKE 34,TT: POKE 35,BT: HOME : RETURN 
  73. 701  POKE 32,0: POKE 33,40: POKE 34,TT: POKE 35,BT: RETURN 
  74. 711 TT = 0:BT = 10: GOSUB 701: IF ET = 1  THEN ET = ET +1: GOSUB 611: GOTO 731
  75. 721  GOSUB 621
  76. 731  HTAB L: VTAB T +1: FOR H = T +1 TO B -1: VTAB H: HTAB 1: CALL  -868: NEXT H: VTAB T +1: RETURN 
  77. 741  PRINT  CHR$(4): POKE  -16368,0:AN$ = "": ON CP = 1 GOTO 761
  78. 751  HTAB 1: PRINT  CHR$(93);
  79. 761 R = 0: CALL 768: FOR J = 512 TO 736:X =  PEEK(J): ON X = 155 GOTO 1471: IF X = 141  THEN J = 736: GOTO 811
  80. 771  IF X = 162  THEN R = 1
  81. 781  IF R = 1  THEN 801
  82. 791 AN$ = AN$ + CHR$(X -128 -32 *(X >223)): GOTO 811
  83. 801 AN$ = AN$ + CHR$(X -128)
  84. 811  NEXT J:BU$ = AN$: RETURN 
  85. 821  IF SN = 3  THEN  HTAB 2: PRINT "PRINT "; CHR$(34);"ROSES ARE RED"; CHR$(34)
  86. 831  IF SN = 1  THEN  PRINT " 10 PRINT "; CHR$(34);"ROSES ARE RED"; CHR$(34)
  87. 841  IF SN = 2  THEN  HTAB 1: PRINT "ROSES ARE RED"
  88. 851  RETURN 
  89. 861  IF SN = 1  THEN  PRINT " 30 PRINT "; CHR$(34);"I LOVE MY APPLE"; CHR$(34)
  90. 871  IF SN = 2  THEN  PRINT "I LOVE MY APPLE"
  91. 881  RETURN 
  92. 891  IF SN = 1  THEN  PRINT " 20 PRINT "; CHR$(34);"VIOLETS ARE BLUE"; CHR$(34)
  93. 901  IF SN = 2  THEN  PRINT "VIOLETS ARE BLUE"
  94. 911  RETURN 
  95. 921  PRINT " 50 END": RETURN 
  96. 931 E = 0
  97. 941  IF PC < >1  THEN 971
  98. 951  IF X > LEN(AN$)  THEN E = 1: RETURN 
  99. 961  GOTO 981
  100. 971  IF X > =  LEN(AN$)  THEN E = 1: RETURN 
  101. 981  ON  MID$ (AN$,X,1) < >" " GOTO 1001
  102. 991 X = X +1: GOTO 941
  103. 1001  RETURN 
  104. 1011 LN$ =  MID$ (AN$,X,SL): RETURN 
  105. 1021 E = 0: IF  MID$ (AN$,X,1) = "?"  THEN X = X +1: RETURN 
  106. 1031 E = 0: IF  MID$ (AN$,X,5) = "PRINT"  THEN X = X +5: RETURN 
  107. 1041 E = 1: GOSUB 711: PRINT "You typed "; MID$ (AN$,BS);".": PRINT "You didn't use PRINT.": PRINT "Please try again.": RETURN 
  108. 1051 E = 0: IF  MID$ (AN$,X,1) =  CHR$(34)  THEN  RETURN 
  109. 1061 E = 1:Q$ =  MID$ (AN$,X,1): IF  ASC(Q$) = 45  OR  ASC(Q$) = 46  OR  ASC(Q$) >47  AND  ASC(Q$) <58  THEN  GOSUB 711: PRINT "You typed "; MID$ (BU$,BS)".": PRINT "You could PRINT a number here,": PRINT "but we prefer that you type": PRINT "a literal quote.  Try again.": RETURN 
  110. 1071 E = 1: GOSUB 711: PRINT "You typed "; MID$ (BU$,BS);".": PRINT "You forgot to use a quotation": PRINT "mark after the PRINT statement.": PRINT "Please try again.": RETURN 
  111. 1081 E = 0:SL = X +1
  112. 1091  ON SL > LEN(AN$) GOTO 1111: IF  MID$ (AN$,SL,1) < > CHR$(34)  THEN SL = SL +1: GOTO 1091
  113. 1101  IF  MID$ (AN$,SL,1) =  CHR$(34)  THEN  RETURN 
  114. 1111 E = 1: GOSUB 711: PRINT "You typed "; MID$ (BU$,BS);".": PRINT "Although it's not required, we'd": PRINT "like you to end your statement": PRINT "with a second "; CHR$(34);" mark. Try again.": RETURN 
  115. 1121 E = 0: IF SL > = X +2  THEN 1141
  116. 1131 E = 1: GOSUB 711: PRINT "You typed "; MID$ (BU$,BS);".": PRINT "It would help for now if you": PRINT "would enclose something inside": PRINT "the quotations.  Try again.": RETURN 
  117. 1141 SL = SL -(X +1):I$(PN) =  MID$ (AN$,X +1,SL): RETURN 
  118. 1151 E = 0: IF  MID$ (AN$,X,4) = "SAVE"  THEN X = X +4: RETURN 
  119. 1161 E = 1: GOSUB 711: PRINT "You typed "; MID$ (AN$,BS);".": PRINT "To save a program to disk you": PRINT "should begin by typing SAVE.": PRINT "Please try again.": RETURN 
  120. 1171 E = 0: IF  MID$ (AN$,X,4) = "LOAD"  THEN X = X +4: RETURN 
  121. 1181 E = 1: GOSUB 711: PRINT "You typed "; MID$ (AN$,BS);".": PRINT "To load a program into memory": PRINT "you should begin by typing LOAD.": PRINT "Please try again.": RETURN 
  122. 1191 E = 0: IF  MID$ (AN$,X,3) = "RUN"  THEN X = X +2: RETURN 
  123. 1201 E = 1: GOSUB 711: PRINT "You typed "; MID$ (BU$,BS);".": PRINT "You should have typed RUN.": PRINT "Please try again.": RETURN 
  124. 1211 E = 0: IF  MID$ (AN$,X,4) = "LIST"  THEN X = X +3: RETURN 
  125. 1221 E = 1: GOSUB 711: PRINT "You typed "; MID$ (BU$,BS);".": PRINT "You should have typed LIST.": PRINT "Please try again.": RETURN 
  126. 1231 E = 0: IF X > =  LEN(AN$)  THEN 1291
  127. 1241  FOR Y = X +1 TO  LEN(AN$): IF  MID$ (AN$,Y,1) < >" "  THEN E = 1
  128. 1251  NEXT Y: IF LD = 1  AND E = 1  THEN  GOSUB 711: PRINT "You typed "; MID$ (BU$,BS)".": PRINT "You shouldn't type anything after": PRINT "the line number if you wish to": PRINT "to delete a line.  Try again.": RETURN 
  129. 1261  IF LD = 2  AND E = 1  THEN  GOSUB 711: PRINT "You typed "; MID$ (BU$,BS)".": PRINT "Please don't type anything after": PRINT "the program name or it will be-": PRINT "come part of the name. Try again.": RETURN 
  130. 1271  IF LD = 3  AND E = 1  THEN  GOSUB 711: PRINT "You typed "; MID$ (BU$,BS)".": PRINT "If you type anything after the": PRINT "program name the computer will": PRINT "try to find the wrong program.": PRINT "Please try again.": RETURN 
  131. 1281  IF E = 1  THEN  GOSUB 711: PRINT "You typed "; MID$ (BU$,BS)".": PRINT "Please don't type anything after": PRINT "the command.  It will just": PRINT "complicate things.  Try again.": RETURN 
  132. 1291  RETURN 
  133. 1301 E = 0: IF  MID$ (AN$,X,3) = "CAT"  THEN X = X +3: RETURN 
  134. 1311 E = 1: GOSUB 711: PRINT "You typed "; MID$ (BU$,BS);".": PRINT "You need to type CAT to": PRINT "display the catalog.  Try again.": RETURN 
  135. 1321  HPLOT AX,BY TO AX,BY +10: HPLOT AX,BY TO AX +2,BY TO AX +5,BY +2 TO AX +5,BY +4 TO AX +3,BY +5 TO AX,BY +5: RETURN 
  136. 1331  HCOLOR= C1: GOSUB 1321: FOR TP = 1 TO 75: NEXT TP: RETURN 
  137. 1341  DATA  85,35,110,13,120,16,130,21,140,27,150,32,160,32,170,31,178,31, 185,31,182,35,182,38,182,42,190,50,200,55,220,55,238,60,215,94, 220,55,200,55,190,50,180,42,182,38,182,35,185,31  
  138. 1351  DATA  178,31,170,31,160,32,150,32,140,27,130,21,120,16,110,13,85,35:NAME$ = "Computer User's Anon.": GOSUB 1421: END 
  139. 1361 TT = TT(1):BT = BT(1):W = W(1):B = B(1):T = T(1):L = L(1): GOSUB 691: GOSUB 701: VTAB IV: GOSUB 741:X = 1: GOSUB 931: IF E = 1  THEN  GOSUB 711: PRINT "Please type RUN and": PRINT "press RETURN.  Try again.": GOTO 1361
  140. 1371 BS = X: GOSUB 1191: ON E = 1 GOTO 1361: GOSUB 1231: ON E = 1 GOTO 1361
  141. 1381  RETURN 
  142. 1391 TT = TT(1):BT = BT(1):W = W(1):B = B(1):T = T(1):L = L(1): GOSUB 691: GOSUB 701: VTAB IV: GOSUB 741:X = 1: GOSUB 931: IF E = 1  THEN  GOSUB 711: PRINT "Please type LIST and": PRINT "press RETURN.  Try again.": GOTO 1391
  143. 1401 BS = X: GOSUB 1211: ON E = 1 GOTO 1391: GOSUB 1231: ON E = 1 GOTO 1391
  144. 1411  RETURN 
  145. 1421 NO$ = "": FOR X = 1 TO  LEN(NAME$):Y =  ASC( MID$ (NAME$,X)): IF Y = 32  THEN NAME$ =  LEFT$(NAME$,X -1) +"." + MID$ (NAME$,X +1)
  146. 1431 NO$ = NO$ + CHR$( ASC( MID$ (NAME$,X,1)) -32 *(Y >95)): NEXT X: PRINT "/"NO$: PRINT : PRINT " NAME";: HTAB 16: PRINT "TYPE";: HTAB 22: PRINT "BLOCKS";: HTAB 30: PRINT "MODIFIED": PRINT : PRINT " POEM";: HTAB 17: PRINT "BAS";: HTAB 27: PRINT "1";: HTAB 30: PRINT "<NO DATE>": IF CS = 1  THEN  PRINT " "PN$(1);: HTAB 17: PRINT "BAS";: HTAB 27: PRINT "1";: HTAB 30: PRINT "<NO DATE>"
  147. 1441  PRINT : PRINT "BLOCKS FREE:";: HTAB 15: PRINT BF;: HTAB 23: PRINT "BLOCKS USED";: HTAB 39: PRINT BU;: RETURN 
  148. 1451  PRINT : PRINT  CHR$(4);"OPEN ";F$: RETURN 
  149. 1461  PRINT : PRINT  CHR$(4);"CLOSE ";F$: RETURN 
  150. 1471  POKE 32,0: POKE 33,40: POKE 34,0: POKE 35,24: GOSUB 1461: PRINT : PRINT  CHR$(4);"RUN RUNMENU"
  151. 1481  RESUME